package com.pl.common.validator.group;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

@Documented
//说明校验器注解是使用哪个校验器校验的 , 可以指定校验器,如下
@Constraint(
        validatedBy = { ListValueConstraintValidator.class}
)
//表示注解可以标注在哪些位置,比如: 方法,属性,参数,构造器 ,等等
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
//表示校验注解可以在运行时获取
@Retention(RetentionPolicy.RUNTIME)

public @interface ListValue {
    //当出现错误时,错误信息默认去com.pl.common.validator.group.ListValue.message中取出
    String message() default "{com.pl.common.validator.group.ListValue.message}";
    //支持分组校验的功能
    Class<?>[] groups() default {};
    //可以自定义一些复杂信息
    Class<? extends Payload>[] payload() default {};
    //指定 int数组 ,默认没有值
    int[] values() default {};

}
